﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestionaleLib.Controller;
using GestionaleLib;

namespace Leaf.View.Clienti
{
    public partial class frmElencoClienti : Form
    {

        private Cliente ClienteSelezionato;

        public frmElencoClienti()
        {
      
            InitializeComponent();
            Elenco();
        }

        public void Aggiorna()
        {
            Elenco();
        }
        private void Elenco()
        {
            Grid.DataSource = null;
            Grid.DataSource = new ctrlClienti().Seleziona();
            FormattaGriglia();
        }

        private void Ricerca()
        {
            Grid.DataSource = null;
            Grid.DataSource = new ctrlClienti().Seleziona(txtCerca.Text);
            FormattaGriglia();
        }

        private void cmdCerca_Click(object sender, EventArgs e)
        {
            Ricerca();
        }
        private void cmdNuovo_Click(object sender, EventArgs e)
        {
            frmGestisciClienti frm = new frmGestisciClienti(this,null,FormStatus.StatoForm.Nuovo);
            frm.MdiParent = this.MdiParent;
            frm.Show();
        }

        private void FormattaGriglia()
        {
            if (Grid.Rows.Count > 0)
                Grid.Columns["Id"].Visible = false;
            //Grid.Columns["IdTessera"].Visible = true;
        }

        private void Grid_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            cmdModifica_Click(sender, e);
        }

        private void cmdModifica_Click(object sender, EventArgs e)
        {
            if (Grid.DataSource != null && Grid.Rows.Count > 0)
            {
                ClienteSelezionato = (Cliente)Grid.SelectedRows[0].DataBoundItem;
                if (ClienteSelezionato != null)
                {
                    frmGestisciClienti frm = new frmGestisciClienti (this, ClienteSelezionato,FormStatus.StatoForm.Modifica);
                    frm.MdiParent = this.MdiParent;
                    frm.Show();
                }
            }
        }

        private void cmdCancella_Click(object sender, EventArgs e)
        {
            if (Grid.DataSource != null &&
               Grid.Rows.Count > 0)
            {
                DialogResult scelta = MessageBox.Show("Vuoi cancellare il cliente selezionato?",
                    "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (scelta == System.Windows.Forms.DialogResult.Yes)
                {
                    try
                    {
                        new ctrlClienti().Cancella((Cliente)Grid.SelectedRows[0].DataBoundItem);

                        Elenco();
                    }
                    catch (ExceptionErroreCancellazione)
                    {
                        MessageBox.Show("Errore durante la procedura");
                    }
                }
            }
        }

        private void cmdNuovo_Click_1(object sender, EventArgs e)
        {
            frmGestisciClienti frm = new frmGestisciClienti(this);
            frm.MdiParent = this.MdiParent;
            frm.Show();
            Elenco();
        }

        private void cmdCerca_Click_1(object sender, EventArgs e)
        {
            Ricerca();
        }


    }
}
